{
GtkBitmask *changes;
GtkCssStyle *style;
+ GtkCssNode *root;
g_return_if_fail (GTK_IS_STYLE_CONTEXT (context));
gtk_style_context_clear_cache (context);
+ gtk_css_node_set_values (context->priv->cssnode, NULL);
- /* insta-recalculate the new style here */
+ root = gtk_style_context_get_root (context);
style = build_properties (context,
- context->priv->cssnode->decl,
- !gtk_style_context_is_saved (context),
- gtk_css_node_get_parent_style (context, context->priv->cssnode));
- gtk_css_node_set_values (context->priv->cssnode, style);
+ root->decl,
+ TRUE,
+ gtk_css_node_get_parent_style (context, root));
+ gtk_css_node_set_values (root, style);
g_object_unref (style);
if (!gtk_style_context_is_saved (context))
g_object_unref (context);
}
+void
+test_invalidate_saved (void)
+{
+ GtkWidget *window;
+ GtkStyleContext *context;
+
+ window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+
+ context = gtk_widget_get_style_context (window);
+ gtk_style_context_save (context);
+G_GNUC_BEGIN_IGNORE_DEPRECATIONS
+ gtk_style_context_invalidate (context);
+G_GNUC_END_IGNORE_DEPRECATIONS
+ gtk_style_context_restore (context);
+
+ gtk_widget_destroy (window);
+}
+
int
main (int argc, char *argv[])
{
g_test_add_func ("/style/path", test_path);
g_test_add_func ("/style/match", test_match);
g_test_add_func ("/style/basic", test_basic_properties);
+ g_test_add_func ("/style/invalidate-saved", test_invalidate_saved);
return g_test_run ();
}